﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace ECube.Web.CMS.Models
{
    /// <summary>
    /// MvcSiteMapNode
    /// </summary>
    public class MvcSiteMapNodeInput 
    {
            
        public string ParentKey { get; set; }
        [Required]
        public string Key { get; set; }
        [Required]
        [DisplayName("MvcSiteMapNode.Title")]
        public string Title { get; set; }
        [DisplayName("MvcSiteMapNode.Description")]
        public string Description { get; set; }
        public string Url { get;  set; }

        [DisplayName("MvcSiteMapNode.IsMvcAction")]
        public bool IsMvcAction { get; set; }
        public bool IsCreateRoute { get; set; }
        public string RouteName { get; set; }
        public string RouteUrl { get; set; }
        public string ControllerNamespace { get; set; }
        [DisplayName("Mvc.Area")]
        public string Area { get; set; }
        [DisplayName("Mvc.Controller")]
        public string Controller{get;set;}
        [DisplayName("Mvc.Action")]
        public string Action{get; set;}
        public bool IsDynamic{get;set;}
        public List<string> DynamicParameters{get;set;}

        [DisplayName("MvcSiteMapNode.PublishedDate")]
        public DateTime? Published { get;  set; }
        [DisplayName("MvcSiteMapNode.ImageUrl")]
        public string ImageUrl { get; set; }
        [DisplayName("MvcSiteMapNode.Visibility")]
        public MvcSiteMapNodeVisibility Visibility { get; set; }
        [DisplayName("MvcSiteMapNode.Status")]
        public MvcSiteMapNodeStatus Status { get; set; }
        
        public string Group{get;set;}
        
        public string PageId{get;set;}
        public bool ReadOnly{get;set;}
        public string ResourceKey{get;set;}

    }
    public enum MvcSiteMapNodeStatus
    {
        Original,
        Changed,
        New,
        NewEditing,
        Editing
    }
}
